#ifndef COLLECTION_ITERATION_H
#define COLLECTION_ITERATION_H

// Iterates over a range of items
template<class Iter, class Funct>
void for_all(Iter start, Iter end, Funct& functor);

// Double-iterates over all pairs of items in two ranges.
template<class Iter, class Funct>
void for_all_pairs(Iter start1, Iter end1,
                   Iter start2, Iter end2,
                   Funct& functor);


#endif
